Skip to content

JOIN-150 Add optional income guidance to the membership step - #125

Merged
conatus merged 21 commits into
masterfrom
feature/join-150-design-and-build-income-based-subscription-guidance-on-the
Oct 26, 2026
Merged

conatus merged 21 commits into
masterfrom
feature/join-150-design-and-build-income-based-subscription-guidance-on-the

Conversation

@conatus

@conatus conatus commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

Why

GMTU members said seeing suggested dues against their income helps them choose a tier, as on CATU's join page. This adds an optional table of income bands to the membership step. It is off by default and an add-on switches it on, so other sites see no change.

How

  • New filter ck_join_flow_income_guidance_enabled, false by default. GMTU's add-on returns true (common-knowledge-join-flow-gmtu#13).
  • With it on, each membership plan (global or a block's own) gets optional Weekly income and Monthly income text fields. The Copy tab gets an editable Income guidance heading and an optional Income guidance note.
  • The membership step shows a table of the banded plans above the tiers. Choosing a row selects that tier, and choosing a tier marks its row. Plans with no band are left out. On phones each band becomes a labelled card.
  • The note is passed through wp_kses_post(), so an admin without unfiltered_html can't use it to run script.
  • Version 1.4.45.

Test plan

  • With no add-on switching it on, the settings page and membership step look exactly as before
  • Switch it on (a must-use plugin with add_filter('ck_join_flow_income_guidance_enabled', '__return_true');)
  • Weekly income and Monthly income appear on each global plan, and on a block's own plans
  • The Copy tab shows the heading, with its default, and the note
  • Give some plans bands and save; the table shows them with the heading, and the note when set
  • Clicking a row selects its tier, and the button shows that tier's amount
  • Choosing a tier directly highlights its row
  • Continue reaches payment with the chosen tier
  • On a phone, each band shows as its own card

Automated: PHP unit tests, Jest, and e2e specs for the settings, the table and the flag being off. CI runs all of them, plus Prettier, phpcs and PHPStan.

Watch out for

  • Merge this before releasing GMTU#13, which needs 1.4.45.
  • E2E setup: a must-use plugin in packages/join-e2e/mu-plugins/ switches the flag on, mounted in docker-compose.yml. The admin helpers now live in tests/helpers.ts, and the plan redirect spec uses them too.
  • The block editor income test picks its page from the full list, not the picker's search, because of JOIN-158.
  • The same unsanitised HTML exists in ten older copy settings on master. That's a separate fix, not this PR.

🤖 Generated with Claude Code

@linear-code

linear-code Bot commented Oct 1, 2026

Copy link
Copy Markdown

JOIN-150

@conatus conatus changed the title Add optional income guidance to the membership step (JOIN-150) JOIN-150 Add optional income guidance to the membership step Oct 17, 2026
…sign-and-build-income-based-subscription-guidance-on-the

# Conflicts:
#	packages/join-e2e/.wp-env.json
#	packages/join-e2e/tests/admin-plan-redirect.spec.ts
#	packages/join-flow/scss/index.scss
#	packages/join-flow/src/env.ts
@conatus
conatus merged commit bcfaec2 into master Oct 26, 2026
5 checks passed
@conatus
conatus deleted the feature/join-150-design-and-build-income-based-subscription-guidance-on-the branch October 26, 2026 21:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant